package com.hualan.filter;



import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/*
* 链接池：用来完成对数据库链接对象的管理。常用的数据库链接池
* 1. c3p0:是JDBC官方提供的一个连接池对象，该对象只提供链接池基本操作。即链接对象的创建和销毁。
* 2. Druid：德鲁伊是阿里巴巴在c3p0基础之上结合多线程封装的数据库连接池工具，该连接池除了完成数据库链接对象的创建和销毁基本工作之外，加入了sql防注入检测即多线程异步操作。从而提升数据库管理的效率和安全性。适用于高并发场景。
* */

@WebFilter(urlPatterns = "/*")
public class ServiceFilter implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        //将创建执行的对象传递给对应的服务
        HttpServletRequest req = (HttpServletRequest) servletRequest;
        HttpServletResponse resp = (HttpServletResponse) servletResponse;
        req.setCharacterEncoding("UTF-8");
        if(req.getServletPath().endsWith("html") || req.getServletPath().endsWith("htm")){
            resp.setHeader("Content-type", "text/html;charset=utf-8");
        }else{
            resp.setHeader("Content-type", "text/json;charset=utf-8");
        }
        filterChain.doFilter(req, resp);
    }
}
